MODULE_NAME='IR CD'
(
	Dev dvCD,
	Dev vdvCD,
	Dev daTPs[]
)
(***********************************************************)
(***********************************************************)
(*  FILE_LAST_MODIFIED_ON: 04/04/2006  AT: 11:33:16        *)
(***********************************************************)
(* System Type : NetLinx                                   *)
(***********************************************************)
(* REV HISTORY:                                            *)
(***********************************************************)
(*
    $History: $
*)    
(***********************************************************)
(*          DEVICE NUMBER DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_DEVICE

(***********************************************************)
(*               CONSTANT DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_CONSTANT

(***********************************************************)
(*              DATA TYPE DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_TYPE

(***********************************************************)
(*               VARIABLE DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_VARIABLE
Volatile Integer nCDBtns[] =
{
    999, // On
    999, // Off
    215, // Play
    216, // Stop
    217, // Pause
    228, // Next
    229, // Previous
    218, // FFwd
    219, // Reverse
    200, // 0
    201, // 1
    202, // 2
    203, // 3
    204, // 4
    205, // 5
    206, // 6
    207, // 7
    208, // 8
    209, // 9
    210, // 10+
    999  // Open/Close
}

Volatile Integer nDVDIR[] =
{
    27, // On
    28, // Off
    1,  // Play
    2,  // Stop
    3,  // Pause
    4,  // Next
    5,  // Previous
    6,  // FFwd
    7,  // Reverse
    10, // 0
    11, // 1
    12, // 2
    13, // 3
    14, // 4
    15, // 5
    16, // 6
    17, // 7
    18, // 8
    19, // 9
    20, // 10+
    80  // Open/Close
}
(***********************************************************)
(*               LATCHING DEFINITIONS GO BELOW             *)
(***********************************************************)
DEFINE_LATCHING

(***********************************************************)
(*       MUTUALLY EXCLUSIVE DEFINITIONS GO BELOW           *)
(***********************************************************)
DEFINE_MUTUALLY_EXCLUSIVE

(***********************************************************)
(*        SUBROUTINE/FUNCTION DEFINITIONS GO BELOW         *)
(***********************************************************)
(* EXAMPLE: DEFINE_FUNCTION <RETURN_TYPE> <NAME> (<PARAMETERS>) *)
(* EXAMPLE: DEFINE_CALL '<NAME>' (<PARAMETERS>) *)

Define_Call 'PULSE_IR' (DEV dvDEV, INTEGER nCHAN)
{
  Send_Command dvDev,"'SP',nChan"
}

(***********************************************************)
(*                STARTUP CODE GOES BELOW                  *)
(***********************************************************)
DEFINE_START

(***********************************************************)
(*                THE EVENTS GO BELOW                      *)
(***********************************************************)
DEFINE_EVENT

Channel_Event[vdvCD,1]
{
    On:
    {
	Send_String 0,"'CD ',Itoa(dvCD.Number),':',Itoa(dvCD.Port),':',Itoa(dvCD.System),' Rebuilding Events'"
	Rebuild_Event()
    }
}

Button_Event[daTPs, nCDBtns]
{
    Push:
    {
	Call 'PULSE_IR' (dvCD, nDVDIR[Get_Last(nCDBtns)])
    }
    Hold[5,Repeat]:
    {
	Call 'PULSE_IR' (dvCD, nDVDIR[Get_Last(nCDBtns)])
    }
}

(***********************************************************)
(*            THE ACTUAL PROGRAM GOES BELOW                *)
(***********************************************************)
DEFINE_PROGRAM

(***********************************************************)
(*                     END OF PROGRAM                      *)
(*        DO NOT PUT ANY CODE BELOW THIS COMMENT           *)
(***********************************************************)
